+ node->num_perms*sizeof(node->perms[0])
+ node->datalen + node->childlen;
- if (data.dsize >= quota_max_entry_size)
+ if (domain_is_unprivileged(conn) && data.dsize >= quota_max_entry_size)
goto error;
data.dptr = talloc_size(node, data.dsize);
return (intf->req_cons != intf->req_prod);
}
+bool domain_is_unprivileged(struct connection *conn)
+{
+ return (conn && conn->domain && conn->domain->domid != 0);
+}
+
bool domain_can_write(struct connection *conn)
{
struct xenstore_domain_interface *intf = conn->domain->interface;
int domain_entry(struct connection *conn)
{
- return (conn && conn->domain && conn->domain->domid)
+ return (domain_is_unprivileged(conn))
? conn->domain->nbentry
: 0;
}
int domain_watch(struct connection *conn)
{
- return (conn && conn->domain && conn->domain->domid)
+ return (domain_is_unprivileged(conn))
? conn->domain->nbwatch
: 0;
}
bool domain_can_read(struct connection *conn);
bool domain_can_write(struct connection *conn);
+bool domain_is_unprivileged(struct connection *conn);
+
/* Quota manipulation */
void domain_entry_inc(struct connection *conn);
void domain_entry_dec(struct connection *conn);